草庐IT

c++ - C++中auto_ptr的指针运算

全部标签

windows - 使用 dnscmd 删除 Windows DNS PTR 条目

在WindowsDNS服务器上,我可以使用以下powershell命令添加资源记录并自动为反向查找区域创建相应的PTRDNS命令。/recordaddmgmt.testrhel1/CreatePTR10.0.0.1有没有办法像上面那样用一个命令删除它们?简而言之,是否有与/createPTR相反的dnscmd开关?像/removePTR或/deletePTR这样的东西?找不到任何这样说的文档 最佳答案 只需确保提供要从反向查找区域中删除的地址:dnscmd./recorddeletemgmt.testrhel1A10.0.0.1

windows - 64 位 Windows 8.1 和 Qt 上的 MIDI 应用程序 - 指针大小问题

我正在尝试开发一个C++Windows应用程序来处理来自某些MIDI设备的MIDI信息。我强制使用的操作系统是Windows8.164位。开发环境为Qt。在阅读了大量网页后,我发现Windows有一组低级函数来处理MIDI数据,允许将WindowsMIDI驱动程序与任何应用程序连接。这些功能在此处描述http://msdn.microsoft.com/en-us/library/windows/desktop/dd757277(v=vs.85).aspx到目前为止,我编写的软件工作正常,我能够在我的应用程序中处理传入的MIDI短消息。尽管如此,当涉及到将一些缓冲区从应用程序传递到驱动程

windows - 将Win32封装在一个类中——在CreateWindow中传递类指针

我看了很多关于这个主题的教程和帖子,他们都说我在我的CreateWindowEx()函数中传递类实例指针(this),然后存储它在窗口过程函数中,当WM_NCCREATE消息被发送时。我猜这是因为WM_NCCREATE应该是自创建窗口以来发送到窗口过程的第一条消息。几个问题/注意事项:通过调试,我了解到实际上WM_GETMINMAXINFO是第一条发送的消息,在WM_NCCREATE之前(至少在我的机器上是这样).这是否意味着我应该监听此消息而不是WM_NCCREATE?根据this热门文章,大家之所以在收到消息WM_NCCREATE后调用SetWindowLongPtr()是因为If

windows - 给定一个指针,我如何找到它所属的 _HEAP_ENTRY?

我正在学习使用WinDbg,我可能会偏离正轨,但我假设如果我的程序没有使用分页堆,而不是“拥有”的_DPH_HEAP_BLOCK结构一个指向我的分配的指针,我会为分配的数据设置一个_HEAP_ENTRY。给定堆上已分配数据的地址,我如何找到与之对应的_HEAP_ENTRY(在WinDbg中),或者我的问题甚至没有意义?我的问题的根源是我想知道转储中的分配是否已释放或堆是否以某种方式损坏。 最佳答案 !heap-p-a启用页堆后,这会转储出有用的信息(可能包括最后一个分配/释放此堆block的人的调用堆栈)-我认为这可视化了_DPH_

c++ - 如何确定我们使用的是真正的 48、56 还是 64 位指针

我正在使用一些技巧在指针中存储额外的信息,目前有些位没有在指针中使用(最高16位),但这在未来会改变。我希望有一种方法来检测我们是否正在编译或运行在将使用超过48位的指针的平台上。相关内容:Whycan'tOSuseentire64-bitsforaddressing?Whyonlythe48-bits?http://developer.amd.com/wordpress/media/2012/10/24593_APM_v2.pdfx86-64、Windows、C/C++需要解决方案,最好是可以在编译时完成的解决方案。其他平台的解决方案也很有趣,但不会标记为正确答案。

c# - 获取鼠标指针下方的窗口句柄,同时忽略半透明窗口

我创建了一个半透明的表单(60%的不透明度和黑色背景),我的应用程序在启动时最大化了整个屏幕。基本上,它会在整个桌面上转换出一种灰色。当用户将鼠标悬停在桌面上的窗口上时,我想获取该窗口的句柄(hWnd)。对我有用的简单方法是:暂时隐藏我的表单(或者,暂时将我的表单的不透明度设置为0.0)调用[GetCursorPos][1]调用[WindowFromPoint][2]再次显示我的表单这种方法的问题是我的表单/屏幕闪烁,这是我不喜欢的。我尝试通过两种方式解决这个问题:我认为应该有一种方法可以通过调用ChildWindowFromPointEx直接在我的窗体下方获取窗口的hWnd。(传入桌

C# 字符串运算符重载

你好friend-什么是重载字符串运算符、=的正确方法(不包括是否可取的参数)?到星期天我已经尝试了五种方法,但我遇到了各种错误-我最好的办法是声明一个部分类并从那里重载,但由于某种原因它不起作用。namespaceSystem{publicpartialclassString{publicstaticBooleanoperator(Stringa,Stringb){returna.CompareTo(b)>0;}} 最佳答案 String是一个密封类。您不能继承它,并且如果没有String的原始源代码,您就不能编译它的部分类。即使

c# - 如何在 C# 中通过 |= 运算符将负数转换为正数?

我们都知道Int32的最高位定义了它的符号。1表示它是负数,0表示它是正数(可能相反)。我可以通过更改最高位将负数转换为正数吗?我尝试使用以下代码来做到这一点:i|=Int32.MaxValue;但它不起作用。 最佳答案 为什么不直接使用Math.Abs​​(yourInt)方法?我不认为有必要在这里使用按位运算。 关于c#-如何在C#中通过|=运算符将负数转换为正数?,我们在StackOverflow上找到一个类似的问题: https://stackover

c# - 动态 linq 和运算符重载

考虑下面的代码:varvectorTest=newVector2(1,2)+newVector2(3,4);//Worksvarx=Expression.Parameter(typeof(Vector2),"x");vartest=System.Linq.Dynamic.DynamicExpression.ParseLambda(new[]{x},null,"x=x+x");运行它,我得到以下异常:System.Linq.Dynamic.ParseExceptionwasunhandledbyusercodeMessage=Operator'+'incompatiblewithoper

c# - 空传播运算符、out 参数和错误的编译器错误?

假设我有一个类,其属性类型为Dictionary,那可能是空的。这会编译但调用TryGetValue()可以抛出NullRef运行时异常:MyClassc=...;stringval;if(c.PossiblyNullDictionary.TryGetValue("someKey",outval)){Console.WriteLine(val);}所以我添加了一个null传播运算符来防止null,但这不会编译:MyClassc=...;stringval;if(c.PossiblyNullDictionary?.TryGetValue("someKey",outval)??false)